#ifndef __GenList_H__
#define __GenList_H__

#define AtomType int
typedef enum
{
	HEAD,
	ATOM,
	CHILDLIST
} ElemTag;

typedef struct GLNode
{
	ElemTag tag;
	union
	{
		AtomType atom;
		struct GLNode *hp;
	};
	struct GLNode *tp;
} GLNode;
typedef GLNode *GenList;

void InitGenList(GenList *gl);
int CreateGenList(GenList *gl, char *ga);

#endif
